4b9c68
@@ -24,6 +24,7 @@
import java.util.List;
 import java.util.ListIterator;
 import java.util.Set;
 
+import org.apache.commons.collections4.ListUtils;
 import org.apache.commons.collections4.set.UnmodifiableSet;
 import org.apache.commons.collections4.iterators.AbstractIteratorDecorator;
 import org.apache.commons.collections4.iterators.AbstractListIteratorDecorator;
@@ -319,11 +320,17 @@
public class SetUniqueList<E> extends AbstractSerializableListDecorator<E> {
         return new SetListListIterator<E>(super.listIterator(index), set);
     }
 
+    /**
+     * {@inheritDoc}
+     * <p>
+     * NOTE: from 4.0, an unmodifiable list will be returned, as changes to the
+     * subList can invalidate the parent list. 
+     */
     @Override
     public List<E> subList(final int fromIndex, final int toIndex) {
         final List<E> superSubList = super.subList(fromIndex, toIndex);
         final Set<E> subSet = createSetBasedOnList(set, superSubList);
-        return new SetUniqueList<E>(superSubList, subSet);
+        return ListUtils.unmodifiableList(new SetUniqueList<E>(superSubList, subSet));
     }
 
     /**
